Skip to content

chore(ffmpeg): say that the encoder list is reported, not verified - #579

Merged
EtienneLescot merged 1 commit into
mainfrom
chore/vendor-encoder-report
Sep 3, 2026
Merged

chore(ffmpeg): say that the encoder list is reported, not verified#579
EtienneLescot merged 1 commit into
mainfrom
chore/vendor-encoder-report

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #576, which observed that the vendor-time encoder check asserts something it does not test.

Slightly narrower than the issue framed it: the check is not a gate, it is already non-fatal and only logs. The problem is the naming and the wording, which promise more than is verified — hardware encoders: h264_vaapi reads as "this works here", when all that was tested is that the name appears in -encoders.

That gap is not hypothetical. The vendored builds list h264_vaapi, and on any host with libva < 2.21 — Ubuntu 24.04 LTS included — reaching it through the CPU upload path aborts the process with SIGABRT rather than returning an error, because the implib trampoline abort()s on a symbol it cannot resolve.

So: REPORTED_ENCODERS, a log line that says present (not verified), and a comment recording why, pointing at #552 and #576.

No behaviour change — same list, same non-fatal path, same output structure. What changes is that it stops implying a guarantee it never made.

For the record on the other half of #576: the hardware ladder it warns about has since shipped (#559) and runs on exactly that configuration, because it uses av_hwframe_map and never av_hwframe_transfer_data — the abort lives in the upload path only. Details in #576 (comment).

Summary by CodeRabbit

  • Documentation

    • Clarified that reported hardware encoders indicate build presence only and are not verified for runtime usability.
    • Updated status messages to distinguish encoder availability from confirmed functionality.
  • Bug Fixes

    • Missing hardware encoders are now explicitly treated as non-fatal when reporting build capabilities.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 031c6cfe-aa59-4490-b246-9542af9e2457

📥 Commits

Reviewing files that changed from the base of the PR and between 855e0fa and efbd03e.

📒 Files selected for processing (1)
  • scripts/fetch-ffmpeg.mjs

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The FFmpeg fetch script renames its encoder list to REPORTED_ENCODERS. It documents that encoder presence is not runtime verification and updates the log message and non-fatal handling comments.

Changes

Encoder reporting

Layer / File(s) Summary
Report encoder presence
scripts/fetch-ffmpeg.mjs
Renames WANTED_ENCODERS to REPORTED_ENCODERS. The script now states that encoder exposure does not verify runtime usability and logs missing encoders as non-fatal.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 0f8bb

This clarifies that reported FFmpeg encoder presence is not runtime verification without changing encoder selection or behavior. No current merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the technical change and motivation, but it does not follow the required template. It omits the required section headings, leaves the related issue as incomplete "Fixes #", pr… Reformat the description using the repository template. Add the Summary, Related issue with a valid reference such as "Refs #576" if appropriate, Type of change, Release impact, Desktop impact, Screenshots / video if applicable, and Testing…
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: it clarifies that the FFmpeg encoder list is reported but not verified.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the technical change and motivation, but it does not follow the required template. It omits the required section headings, leaves the related issue as incomplete "Fixes #", provides no selected change type, release impact, or desktop impact, and does not describe testing.

Resolution

Reformat the description using the repository template. Add the Summary, Related issue with a valid reference such as "Refs #576" if appropriate, Type of change, Release impact, Desktop impact, Screenshots / video if applicable, and Testing sections. Select the applicable checkboxes and document the test commands or steps.

✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/vendor-encoder-report

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

`WANTED_ENCODERS` drove a line reading `hardware encoders: h264_vaapi` on Linux.
That is true in the only sense the code checks — the name appears in
`-encoders` — and misleading in the sense a reader takes it: that the encoder
works here.

It does not follow. The vendored builds list `h264_vaapi`, and on any host with
libva < 2.21 (Ubuntu 24.04 LTS included) reaching it through the CPU upload path
used to abort the process with SIGABRT rather than return an error, because the
implib trampoline `abort()`s on a symbol it cannot resolve. A build that
"has" the encoder and a machine that can use it are separate questions.

Renamed to `REPORTED_ENCODERS`, the log line now says "present (not verified)",
and the comment records why the distinction matters, with the libva case and
pointers to #552 and #576.

No behaviour change: this was already non-fatal and already only a log. What
changes is that it no longer implies a guarantee it never made. The only
evidence an encoder works is a frame going through it —
`vaapi_encodes_from_an_exported_dmabuf` is that evidence for the Linux hardware
path, and the export falls back to software whenever it is absent.
@EtienneLescot
EtienneLescot force-pushed the chore/vendor-encoder-report branch from efbd03e to 0f8bb3e Compare September 3, 2026 13:01
@EtienneLescot
EtienneLescot merged commit 9909b85 into main Sep 3, 2026
17 checks passed
@EtienneLescot
EtienneLescot deleted the chore/vendor-encoder-report branch September 3, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant